#ifndef __GPIO__H__
#define __GPIO__H__

extern int gpio_mode(unsigned int, unsigned int, unsigned int);
extern int gpio_set(unsigned int, unsigned int);
extern int gpio_clr(unsigned int, unsigned int);

#define GPIO_A				0x0
#define GPIO_B				0x1
#define GPIO_C				0x2

#define GPIO_PIN_1			0x1
#define GPIO_PIN_2			0x2
#define GPIO_PIN_3			0x3
#define GPIO_PIN_4			0x4
#define GPIO_PIN_5			0x5
#define GPIO_PIN_6			0x6
#define GPIO_PIN_7			0x7
#define GPIO_PIN_8			0x8
#define GPIO_PIN_9			0x9
#define GPIO_PIN_10			0xA
#define GPIO_PIN_11			0xB
#define GPIO_PIN_12			0xC
#define GPIO_PIN_13			0xD
#define GPIO_PIN_14			0xE
#define GPIO_PIN_15			0xF
#define GPIO_PIN_16			0x10

#define GPIO_MODE_OUT_PP		0x0
#define GPIO_MODE_OUT_OD		0x4
#define GPIO_MODE_AF_PP			0x8
#define GPIO_MODE_AF_OD			0xC

#define GPIO_MODE_IN_AIN		0x0
#define GPIO_MODE_IN_FLOATING		0x4
#define GPIO_MODE_IN_PD			0x8
#define GPIO_MODE_IN_PU			0xC

#define GPIO_SPEED_2MHZ			0x2
#define GPIO_SPEED_10MHZ		0x1
#define GPIO_SPEED_50MHZ		0x3

#endif